home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / share / python / debpython / option.py < prev    next >
Encoding:
Python Source  |  2012-05-04  |  1.8 KB  |  48 lines

  1. # -*- coding: UTF-8 -*-
  2. # Copyright ┬⌐ 2010 Piotr O┼╝arowski <piotr@debian.org>
  3. #
  4. # Permission is hereby granted, free of charge, to any person obtaining a copy
  5. # of this software and associated documentation files (the "Software"), to deal
  6. # in the Software without restriction, including without limitation the rights
  7. # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  8. # copies of the Software, and to permit persons to whom the Software is
  9. # furnished to do so, subject to the following conditions:
  10. #
  11. # The above copyright notice and this permission notice shall be included in
  12. # all copies or substantial portions of the Software.
  13. #
  14. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  17. # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18. # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  19. # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  20. # THE SOFTWARE.
  21.  
  22. import re
  23. import optparse
  24. from copy import copy
  25. from debpython.version import parse_vrange
  26.  
  27.  
  28. def parse_version_range(option, opt, value):
  29.     try:
  30.         return parse_vrange(value)
  31.     except ValueError:
  32.         raise optparse.OptionValueError("version range is invalid: %s" % value)
  33.  
  34.  
  35. def compile_regexpr(option, opt, value):
  36.     try:
  37.         pattern = re.compile(value)
  38.     except:
  39.         raise optparse.OptionValueError('regular expression is not valid')
  40.     return pattern
  41.  
  42.  
  43. class Option(optparse.Option):
  44.     TYPES = optparse.Option.TYPES + ('version_range', 'regexpr')
  45.     TYPE_CHECKER = copy(optparse.Option.TYPE_CHECKER)
  46.     TYPE_CHECKER['version_range'] = parse_version_range
  47.     TYPE_CHECKER['regexpr'] = compile_regexpr
  48.